#ifndef GAME_H
#define GAME_H

#include <QString>
#include <QMap>
#include "Achievement.h"

class Game
{
public:
    Game();
    const QString& name() const;
    void setName(const QString& name);
    const QString& smallLogoUrl() const;
    void setSmallLogoUrl(const QString& sLogoUrl);
    const QString& storeUrl() const;
    void setStoreUrl(const QString& storeUrl);
    const QString& iconUrl() const;
    void setIconUrl(const QString& iconUrl);
    const QString& logoUrl() const;
    void setLogoUrl(const QString& logoUrl);
    const QMap<QString, Achievement>& achievements() const;
    void addAchievement(const Achievement& achievement);
    void addAchievement(const QMap<QString, Achievement> achievementMap);
    void setStatsUrl(const QString& statusUrl);
    const QString& statsUrl() const;
    void clearAchievements();

private:
    QString m_name;
    QString m_storeUrl;
    QString m_iconUrl;
    QString m_logoUrl;
    QString m_smallLogoUrl;
    QString m_statsUrl;
    QMap<QString, Achievement> m_achievementMap;

};

QDataStream &operator<<(QDataStream &out, const Game &game);
QDataStream &operator>>(QDataStream &in, Game &game);

#endif // GAME_H
